/*
 * @Description: 
 * @Author: changqing
 * @Date: 2021-08-30 19:37:03
 * @LastEditTime: 2021-08-30 19:37:04
 * @LastEditors: changqing
 * @Usage: 
 */

//publish 将 multicast 內封裝了 。multicast 內创建Subject 的方法，直接使用 new Subject()，因此以下面两段代码完全一样：
var { timer, interval,range,from,Subject } = require('rxjs'); 
var {take,map, multicast,publish} = require('rxjs/operators');

// interval(1000).pipe(
//   multicast(() => new Subject())
// );

var source=interval(1000).pipe(
  publish()
);

source.subscribe((data) => {
  console.log(`multicast 第一次订阅: ${data}`);
  });
 
 setTimeout(() => {
 source.subscribe((data) => {
 console.log(`multicast 第二次订阅 ${data}`);
 });
 }, 5000);
 setTimeout(() => {
   source.connect();
 }, 3000);